A wide variety of software applications need to create, modify, store, and analyze large quantities of data. Relational database management systems are ideally suited towards this need, providing the resources needed to handle large quantities of data. However, many typical software applications handle data in the form of data objects and it is difficult for these applications to manipulate data in databases directly. In contrast, relational database management systems often cannot operate on data objects directly.
To address this difficulty, object relational mapping tools translate data stored in a database into data objects to be manipulated by software applications. Object relational mapping tools hide the complexity of the underlying database from the end application. However, these object relational mapping tools do not provide full object management features and integration with the database. Further, the performance of prior object relational mapping tools is limited and allows for errors to be introduced by applications.
It is desirable to have an integration server system with object relational mapping tools that provides a strongly-typed model application programming interface, complex constraint management, and association balancing. The system also has improved performance through optimized handling of ordered associations of data object and of string-valued attributes.